﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CapaEntidades;
using System.Data;
using System.Data.SqlClient;

namespace CapaDatos
{
    public class datEmpleado
    {
        #region singleton
        private static readonly datEmpleado _instancia = new datEmpleado();
        public static datEmpleado Instancia
        {
            get { return datEmpleado._instancia; }
        }
        #endregion

        #region METODOS
        public entEmpleado VerificarAcceso(String prmUser, String prmPass)
        {
            entEmpleado e = null;
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            try
            {
                SqlConnection conex = Conexion.Instancia.Conectar();
                cmd = new SqlCommand("spVerificarAccesoEmpleado", conex);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@prmUser", prmUser);
                cmd.Parameters.AddWithValue("@prmPass", prmPass);
                conex.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    e = new entEmpleado();
                    e.Usuario = prmUser;
                    e.IdPersona = Convert.ToInt16(dr["IDPERSONA"]);
                    e.Nombres= dr["NOMBRES"].ToString();
                    e.Apellidos = dr["APELLIDOS"].ToString();
                    e.Sexo = Convert.ToChar(dr["SEXO"].ToString());
                    e.Direccion = dr["DIRECCION"].ToString();
                    e.Telefono = dr["TELEFONO"].ToString();
                    e.Correo = dr["CORREO"].ToString();
                    e.NroDocumento = dr["NRODOCUMENTO"].ToString();
                    entCargo cargo = new entCargo();
                    cargo.Nombre = dr["CARGO"].ToString();
                    e.cargo = cargo;
                }
            }
            catch (Exception ex)
            {
                e = null; throw ex;
            }
            finally
            {
                cmd.Connection.Close();
            }
            return e;
        }
        #endregion
    }
}
